/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wasolicitudesfiec.Busquedas.dataproviders;

import com.sun.data.provider.DataProviderException;
import com.sun.data.provider.FieldKey;
import com.sun.data.provider.RowKey;
import com.sun.data.provider.impl.AbstractTableDataProvider;
import com.sun.data.provider.impl.IndexRowKey;
import java.util.Vector;
import wasolicitudesfiec.registros.Rg_Solicitud;

/**
 *
 * @author Administrador
 */
public class SolicitudDataProvider extends AbstractTableDataProvider {

	private Vector<Rg_Solicitud> listaSolicitud;

	public SolicitudDataProvider() {
		agregarKey("solicitud", "Solicitud");
		agregarKey("solicitante", "Solicitante");
		agregarKey("estado", "Estado");
		agregarKey("fecha_creacion", "Fecha de Creación");
		agregarKey("fecha_finalizacion", "Fecha de Finalización");
		agregarKey("participantes", "Participantes");
		agregarKey("titulo", "Titulo");
		agregarKey("instancia_proceso", "Instancian del Proceso");
	}

	private void agregarKey(String key_string, String display_name) {
		FieldKey key;
		key = new FieldKey(key_string);
		key.setDisplayName(display_name);
		addFieldKey(key);
	}

	@Override
	public Class getType(FieldKey fieldKey) throws DataProviderException {
		return String.class;
	}

	@Override
	public boolean isReadOnly(FieldKey fieldKey) throws DataProviderException {
		return true;
	}

	@Override
	public int getRowCount() throws DataProviderException {
		if (getListaSolicitud() != null) {
			return getListaSolicitud().size();
		}
		return 0;
	}

	@Override
	public Object getValue(FieldKey fieldKey, RowKey row) throws DataProviderException {
		int indice = ((IndexRowKey) row).getIndex();
		if (fieldKey==null)
			return "";
		String fieldId = fieldKey.getFieldId();
		Rg_Solicitud solicitud = listaSolicitud.get(indice);
		System.out.println("index:" + indice + " fieldKey.getFieldId():" + fieldId);

		if (fieldId.equals("solicitud")) {
			return solicitud.getModelo();
		} else if (fieldId.equals("solicitante")) {
			return solicitud.getSolicitante();
		} else if (fieldId.equals("estado")) {
			return solicitud.getEstado();
		} else if (fieldId.equals("fecha_creacion")) {
			return solicitud.getFechacreacion();
		} else if (fieldId.equals("fecha_finalizacion")) {
			return solicitud.getFechamodificacion();
		} else if (fieldId.equals("participantes")) {
			return solicitud.getDescripcion();
		}else if (fieldId.equals("titulo")){
			return solicitud.toString();
		}else if (fieldId.equals("instancia_proceso")){
			return solicitud.getNombreinstanciaproceso();
		}
		return "algo" + indice;
	}

	@Override
	public void setValue(FieldKey fieldKey, RowKey row, Object value) throws DataProviderException {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	@Override
	public boolean canInsertRow(RowKey beforeRow) throws DataProviderException {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	@Override
	public RowKey insertRow(RowKey beforeRow) throws DataProviderException {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	@Override
	public boolean canAppendRow() throws DataProviderException {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	@Override
	public RowKey appendRow() throws DataProviderException {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	@Override
	public boolean canRemoveRow(RowKey row) throws DataProviderException {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	@Override
	public void removeRow(RowKey row) throws DataProviderException {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	/**
	 * @return the listaSolicitud
	 */
	public Vector<Rg_Solicitud> getListaSolicitud() {
		return listaSolicitud;
	}

	/**
	 * @param listaSolicitud the listaSolicitud to set
	 */
	public void setListaSolicitud(Vector<Rg_Solicitud> listaSolicitud) {
		this.listaSolicitud = listaSolicitud;
	}
}
